iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
1
自我挑戰組

資訊工程大補帖系列 第 20

資工補帖-Day 20-資訊與網路安全

  • 分享至 

  • xImage
  •  

正文

這堂課很多關於網路的安全,其中有兩個報告一個是「TLS解密程式作業」、一個是「滲透測試」的報告。

TLS解密程式作業

過程中遇到的問題

許多系統時常運用到python,也聽說過虛擬機;但實際嘗試改寫編譯卻是極少數次。甚至從未親身使用過,對其操作可以說是非常生疏,一開始如未詢問其他同學,參考網上資料,想必真的會卡關很久!
而拆解封包也是一個很特別的經驗,首次的學習成果後,試著自己解說實踐看看,著手使用程式來代替口頭說明與計算,改讓計算機器來協助實際演算。過程中,或許也因還不甚熟悉,故也花費了許多時間來解讀老師所提供之基本演算法內容,得以改寫利用。

如何解決問題

很感謝授課老師還貼心地補充放上了上課中所題及的相關內容於github平台上讓我們能隨時更新下載來觀看。和組員及同學一起共同參與討論,並查找更多資料、程式碼來參考,也進而修改出更好的方法來實作。
經學習後,基本完善了解了拆解封包的基本架構,簡單的手算或許已能熟練了;然而,程式則是仍需不斷構想、測試來演進,最難的過程始終是除錯的部分,尤其可說是初次嘗試使用虛擬機來操作,更是首次以python語法來編寫完成作業,實際運用、執行編譯的操作方式基本上一頭霧水,更別提能否順利讀取檔案來驗證了,還好有組員的相互協助,其中一方有基本相關知識,才能順利的完成這份作業。

程式碼講解

由授課老師提供decode.py作為函式庫,並由其中找出解題頭緒。以及在github上放上解題相關的TLS格式作為提示,此程式碼運用格式進行拆解分包。
以下為程式碼解析:請詳見圖片註解。

由授課老師提供decode.py作為函式庫。


根據授課老師所提式之格式,利用資料型態─字典,作為對應型的資料型態。

讀取檔案,並利用rb讀取二進位檔案。

利用格式開始對records進行解碼。



根據ClientHello、ServerHello格式擷取cli_random和serv_random,並利用利用tls_prf 函式,從 premaster secret 算出 48 bytes 的 master secret。

48-byte master secret 會再被展開成多個 bytes,之後利用aes128cbc_decryp對 HTTPS response 做解密,最後將MAC 與 padding去除。得到答案並寫入檔案。

滲透測試

滲透報告


上一篇
資工補帖-Day 19-使用者經驗設計
下一篇
資工補帖-Day 21-系統程式
系列文
資訊工程大補帖30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言